package com.ww.java8.datetime;

import java.time.Duration;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.LocalTime;

/**
 * TODO
 *
 * @author wanggw
 * @date 2024-02-22 00:38:03
 */
public class DurationDemo {

    /**
     * 你看到的所有类都实现了Temporal接口，Temporal接口定义了如何读取和操纵为时间建模对象的值
     * Duration类的静态工厂方法between就是为了这个目的而设计的，可以创建两个LocalTime对象、两个LocalDateTime对象，或者两个Instant对象
     * 之间的Duration
     *
     * Duration类主要用于以秒和纳秒衡量时间的长短，所以不能仅向between方法传递一个LocalDate对象做参数
     */
    public static void main(String[] args) {
        // localTime对象间差异
        Duration d1 = Duration.between(LocalTime.of(0, 41), LocalTime.of(1, 0));
        System.out.println(d1.toMinutes());

        // localDateTime对象间差异
        Duration d2 = Duration.between(LocalDateTime.now(), LocalDateTime.now().plusDays(1));
        System.out.println(d2.toDays());

        // instant对象间差异
        Duration d3 = Duration.between(Instant.ofEpochSecond(3), Instant.ofEpochSecond(4));

        // instant与localTime不能混用
    }
}
